// ++ -- 
#include <stdio.h>

int main(int argc, char const *argv[])
{
    // ++  ==>>    i++  i = i + 1
    // --  ==>>    i--  i = i - 1
    // ++i i++ 前置和后置
    // ++i      优先级最高 语句最开始运行
    // i++      优先级最低 语句最末尾运行
    int i = 10;
    
    // 误区1:
    printf("i++ = %d\n" , i++); // 10
    // 后置++ 是打印之后才进行的 ++ 
    printf("++i = %d\n" , ++i); // 12
    // 前置++ 是打印之前才进行的 ++

    // 误区2
    i++;
    printf("i++ = %d\n" , i);  //13
    
    ++i;
    printf("++i = %d\n" , i);  // 14

    // 小题目
    int val1 = 10;
    int val2 = 15;

    printf("val = %d\n" , val1++ + ++val2);//26
    // 10 + 16

    // 
    int val = 10;
    printf("val = %d\n" , val++ + ++val);//22?
    // 10 + 12
    //未定义行为，不保证所有平台和编译器一致

    val = 10;
    printf("val = %d\n" , val++ + val);//21?
    // 10 + 11
    //未定义行为，不保证所有平台和编译器一致

    return 0;
}

// 前置++ 是运算前进行的 ++ 
// 后置++ 是运算后进行的 ++ 